home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.004 / xemacs-1 / xemacs-19.13 / lisp / oobr / tree-x / help.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-05  |  6.5 KB  |  190 lines

  1. static char help_text[] ="\n"
  2. "Introduction\n"
  3. "\n"
  4. "        The OO-Browser Graphical Interface\n"
  5. "\n"
  6. "    This program demonstrates a dynamic tree-drawing \n"
  7. "    algorithm developed by Sven Moen.  The algorithm is \n"
  8. "    published in \"IEEE Software\", July 1990, pp. 21-28.\n"
  9. "    If you desire more information than the description\n"
  10. "    given below, see the above-referenced article. \n"
  11. "\n"
  12. "    A number of the features mentioned herein are not\n"
  13. "    included in this version of the program.\n"
  14. "\n"
  15. "Algorithm\n"
  16. "\n"
  17. "    Unlike other algorithms, Moen's algorithm uses an \n"
  18. "    explicit representation of node and subtree contours\n"
  19. "    and it stores each contour as a polygon. \n"
  20. "\n"
  21. "    Trees with nodes of any polygonal shape can be drawn\n"
  22. "    compactly, and the data structure supports insert and\n"
  23. "    delete operations on subtrees.  The results are tidy\n"
  24. "    trees and efficient relayouts when the tree changes.\n"
  25. "\n"
  26. "    In the Layout step, the tree is traversed in depth-first\n"
  27. "    fashion until the leaf nodes are reached.  The contour\n"
  28. "    of each leaf node is formed by creating a linked list of\n"
  29. "    lines that wrap around the node's shape.  This is the \n"
  30. "    LayoutLeaf step.  As the return trip is made back to the\n"
  31. "    root, the contour of each interior node is formed by\n"
  32. "    joining the individual contours of each child. This Join\n"
  33. "    step involves a Merge step where the offset between\n"
  34. "    two neighboring contours is computed to avoid overlap. \n"
  35. "    Since the width of each subtree contour is known at\n"
  36. "    each step, each interior node is centered over its\n"
  37. "    children, and the subtree contour is extended to include\n"
  38. "    the interior node.  This is the AttachParent step.\n"
  39. "\n"
  40. "    In a dynamic update operation (insert or delete), the\n"
  41. "    algorithm reuses the contours not influenced by the\n"
  42. "    change and updates them efficiently. When a given \n"
  43. "    node changes, subtree contours at higher levels must\n"
  44. "    be disassembled before the change. This is called\n"
  45. "    the Unzip step, which call RuboutLeaf, Split, and\n"
  46. "    DetachParent, all inverses of LayoutLeaf, Join, and\n"
  47. "    AttachParent, respectively.  After the change is made,\n"
  48. "    the Zip step reassembles the contours by again calling\n"
  49. "    Layout, Join, and AttachParent.\n"
  50. "\n"
  51. "User Interface\n"
  52. "    \n"
  53. "    This program offers an interactive environment for \n"
  54. "    creating and updating trees of arbitrary size. Trees\n"
  55. "    can be loaded from a file or created on-the-fly.  You\n"
  56. "    can also save trees, and specify various layout and\n"
  57. "    animation options.  Each feature is associated with \n"
  58. "    a menu item which is explained in the next section.\n"
  59. "\n"
  60. "    When invoking the program, you may specify a single\n"
  61. "    argument indicating the name of a tree file. This file\n"
  62. "    will be loaded upon startup. If you start the program\n"
  63. "    without arguments, the canvas will be blank.\n"
  64. "\n"
  65. "Tree Menu\n"
  66. "\n"
  67. "    New Tree...    Create a new tree. You specify \n"
  68. "            a new root, and the existing tree, \n"
  69. "            if any, is deleted.\n"
  70. "\n"
  71. "    Load Tree...    Load a tree specification file.\n"
  72. "            (see the File Format section)\n"
  73. "\n"
  74. "    Save Tree...    Save a tree specification file.\n"
  75. "            (see the File Format section)\n"
  76. "\n"
  77. "    Quit        Exits the program.\n"
  78. "\n"
  79. "Layout Menu\n"
  80. "\n"
  81. "    Layout Spacing...\n"
  82. "            Displays a dialog that allows you\n"
  83. "            to change the spacing between nodes\n"
  84. "            on the same level and the spacing\n"
  85. "            between levels. \n"
  86. "\n"
  87. "    Align Nodes on Level\n"
  88. "            Adds a constraint to the layout\n"
  89. "            algorithm that forces all nodes\n"
  90. "            on the same level to have the same\n"
  91. "            x-position. This leads to truncation\n"
  92. "            of nodes if necessary. The maximum\n"
  93. "            node width is controlled by the\n"
  94. "            Level Spacing. By default, this is\n"
  95. "            disabled.\n"
  96. "\n"
  97. "Node Menu\n"
  98. "\n"
  99. "    This popup menu is invoked by pressing and holding\n"
  100. "    the left mouse button on a node. This menu offers\n"
  101. "    several actions that can be performed on nodes.\n"
  102. "\n"
  103. "    Add Child    Add a child to the node. The new child\n"
  104. "            is added after the bottommost child.\n"
  105. "\n"
  106. "    Add Sibling Before\n"
  107. "            Add a sibling before this node.\n"
  108. "\n"
  109. "    Add Sibling After\n"
  110. "            Add a sibling after this node.\n"
  111. "\n"
  112. "    Collapse Node    Collapses or expands the subtree\n"
  113. "    Expand Node    beginning at the specified node.\n"
  114. "            This operation is similiar to a\n"
  115. "            Delete operation, except that the\n"
  116. "            subtree is preserved so that you\n"
  117. "            can display it again. Collapsed\n"
  118. "            nodes are marked with a gray box.\n"
  119. "\n"
  120. "    Delete Node    Delete the subtree beginning at the\n"
  121. "            specified node.\n"
  122. "\n"
  123. "Tree File Format\n"
  124. "\n"
  125. "    If you wish to load a file, you can load a file created\n"
  126. "    by the OO-Browser with the {C-c d}, (br-xbr) command.\n"
  127. "\n"
  128. "    Node labels are sequences of characters delimited by\n"
  129. "    newlines or end-of-file. \n"
  130. "\n"
  131. "    Files must begin with an OO-Browser Environment path\n"
  132. "    name.  The next line must be a label, which indicates the\n"
  133. "    root node.  Optionally, lists containing labels may\n"
  134. "    follow. Each child label is indented two spaces more \n"
  135. "    its parent. Lists of labels are nested to produce trees. \n"
  136. "\n"
  137. "    For example, a three-level binary tree is as follows:\n"
  138. "\n"
  139. "        ^^c++-^^~/OOBR\n"
  140. "        root node level1\n"
  141. "          level2-1\n"
  142. "            level3-1\n"
  143. "            level3-2\n"
  144. "          level2-2\n"
  145. "            level3-3\n"
  146. "            level3-4\n"
  147. "\n"
  148. "X11 Resources\n"
  149. "\n"
  150. "    Various settings in the program can be manipulated by \n"
  151. "    using X11 resources, specified either on the command\n"
  152. "    line or in a resource setting file. The supported \n"
  153. "    resources are:\n"
  154. "\n"
  155. "    tree.font:    Sets the font of the label nodes.\n"
  156. "            Default is \"fixed\".\n"
  157. "\n"
  158. "    tree.backgroundColor:\n"
  159. "            Sets the background color of the \n"
  160. "            canvas.  Default is \"white\".\n"
  161. "\n"
  162. "    tree.treeColor:    Sets the color of the displayed tree.\n"
  163. "            Default is \"black\".\n"
  164. "\n"
  165. "    tree.splitColor:\n"
  166. "            Sets the color of split contours which\n"
  167. "            appear during a dynamic update.\n"
  168. "            Default is \"goldenrod\".\n"
  169. "    \n"
  170. "    tree.highlightColor:\n"
  171. "            Sets the color of highlighted nodes.\n"
  172. "            Default is \"OrangeRed\".\n"
  173. "\n"
  174. "Help\n"
  175. "\n"
  176. "    If you are reading this, chances are that you found the\n"
  177. "    Help button on the menubar. \n"
  178. "\n"
  179. "Author\n"
  180. "    \n"
  181. "    This program was written by Mark L. Stern during\n"
  182. "    the summer of 1990.  It was redone by Bob Weiner for\n"
  183. "    use with the OO-Browser.\n"
  184. "\n"
  185. "    Stephan Zachwieja contributed the double-buffering\n"
  186. "    code used for smooth animations in this program.\n"
  187. "\n"
  188. "    The other authors have permitted Bob Weiner to distribute\n"
  189. "    the code freely as part of the OO-Browser.\n";
  190.